Copyright(C) 1994 Terumasa KODAKA , Takeshi KONO


■BRANCH4670 BIOS
      o BRANCH4670は、NECの総合ローカルエリアネットワークシステムである
	C&C-NETのBRANCH系サブシステムの製品である。
      o PC-9864初代(ネットワークインターフェースセット)はBRANCH4670対応、
	PC-9864L・U(B4670IIインターフェースセット)はBRANCH4670II対応の
	ネットワークインターフェースボード。
      o BRANCH4670 BIOSは、以下の環境でサポートされる。
	■ノーマルモード
	- PC-9864初代 + PC-9864-02(BRANCH BIOS ROM)
	- PC-9864L・U(BIOS ROMは標準実装)
	* インターフェースボード上のROM内BRANCH BIOSを使用する
	■ハイレゾモード
	- PC-9864初代
	* 本体BIOS ROM内のBRANCH BIOSを使用する。ただし、PC-H98と98ハイレゾ
	  ボード(PC-9821A-E02)はBRANCH BIOSをサポートしていない
	- PC-9864L・U
	* インターフェースボード上のROM内BRANCH BIOSを使用する
関連	■ハイレゾ
	F800:7FE0h
	0000:0400h bit 0
	■ハイレゾ,ノーマル
	0000:0480h bit 5
	0000:049A〜04ABh
	0000:05E5〜05E7h
	INT 1Bh - Function 05h(BRANCH)
	INT 1Bh - Function 06h(BRANCH)



INT D3h - Function 00h
分類	BRANCH4670 BIOS
名前	SEND MESSAGE
対象	PC-9864初代・L・U + ノーマル
	PC-9864初代・L・U + ハイレゾ
入力	AL=00h
	AH=コントロールデータ長(常に0として処理される)
	BX=ローカルRAMデータ領域の先頭アドレス
	CX=送信データ長
	DH=送信先ソケット番号(80h,90h,A0h,B0h)
	DL=送信先ステーション番号
	DI=リザルトレコードの先頭アドレス(DI+AH+3≦0FFFh)
出力	AL=リターンコード
	-------+-----------------------------------------------------------
	値      内容
	-------+-----------------------------------------------------------
	00h     メッセージが正しく伝えられた(再送信なし)
	01〜7Fh メッセージが正しく伝えられた(1〜127回再送信した)
	80h     メッセージが正しく伝えられなかった(リトライ回数オーバ)
	81h     メッセージデータ部が受信側バッファより長かった
	82h     メッセージが準備されていないソケットに送信された
	83h     メッセージコントロール部の長さが、受信側の長さと異なる
	84h     指定できないソケット番号が指定された
	86h     指定できないステーション番号が指定された
	87h     コマンドが実行できなかった(ハードウェアエラー)
	88h     タイムアウトになった
	-------+-----------------------------------------------------------
解説  o 指定されたステーションのソケットにメッセージを送信する。
      o 上位プログラムが設定したローカルRAM内のデータを、指定された
	ステーションのソケットに送信する。
      o 送信結果を上位プログラムに通知する。
関連	


INT D3h - Function 01h
分類	BRANCH4670 BIOS
名前	不明
	Undocumented
対象	PC-9864L・U + ノーマル
	PC-9864初代・L・U + ハイレゾ
入力	AL=01h
	■PC-9864L・U + ノーマル + 0000:043Bh bit 4=0のとき
	INT D3h - Function 00hと同じ
	■PC-9864L・U + ノーマル + 0000:043Bh bit 4=1 または ¥
	  PC-9864初代・L・U + ハイレゾのとき
	AH=コントロールデータ長
	BX=ローカルRAMデータ領域の先頭アドレス
	CX=送信データ長
	DH=送信先ソケット番号(80h,90h,A0h,B0h)
	DL=送信先ステーション番号
	SI=リザルトレコードの先頭アドレス+1
出力	INT D3h - Function 00hと同じ
解説  o INT D3h - Function 00hと同じ
関連	


INT D3h - Function 02h
分類	BRANCH4670 BIOS
名前	SETUP RECEIVE
対象	PC-9864初代・L・U + ノーマル
	PC-9864初代・L・U + ハイレゾ
入力	AL=02h
	AH=コントロールデータ長
	BX=ローカルRAMデータ領域の先頭アドレス
	CX=受信データ長
	DH=送信先ソケット番号(80h,90h,A0h,B0h)
	DI=リザルトレコードの先頭アドレス(DI+AH+3≦0FFFh)
出力	AL=リターンコード
	-------+-----------------------------------------------------------
	値      内容
	-------+-----------------------------------------------------------
	84h     指定できないソケット番号が指定された
	85h     指定されたソケットは既に使用されている
	87h     コマンドが実行できなかった(ハードウェアエラー)
	88h     タイムアウトになった
	FEh     指定されたソケットが準備された
	-------+-----------------------------------------------------------
解説  o 上位プログラムが設定したローカルRAM内にデータを受信するため、指定
	ソケットを準備する。
      o 指定ソケットのソケット情報域に、リザルトレコードアドレスを設定する。
      o 準備されたソケットが正しくデータを受信すると、リザルトレコードの
	先頭バイト(リターンコード)には、トランスポータによって00hが
	書き込まれる。
      o 一度データを受信したソケットは、再びこのファンクションで準備を
	行わなければ次のデータを受信できない。
関連	


INT D3h - Function 03h
分類	BRANCH4670 BIOS
名前	不明
	Undocumented
対象	PC-9864L・U + ノーマル
	PC-9864初代・L・U + ハイレゾ
入力	AL=03h
	AH=コントロールデータ長
	BX=ローカルRAMデータ領域の先頭アドレス
	CX=受信データ長
	DH=送信先ソケット番号(80h,90h,A0h,B0h)
	■PC-9864L・U + ノーマル
	DI=リザルトレコードの先頭アドレス
	■PC-9864初代・L・U + ハイレゾ
	SI=リザルトレコードの先頭アドレス+1
出力	INT D3h - Function 02hと同じ
解説  o ノーマルモードでは、0000:043Bh bit 5=0のとき、INT D3h - Function 02hと
	全く同じ処理を行う。0000:043Bh bit 5=1のときは、INT D3h - Function 02h
	の一部の処理をスキップして実行する。詳細不明。
      o ハイレゾモードでは、使用するレジスタが一部異なる以外、
	INT D3h - Function 02hと同じ処理を行う。
関連	


INT D3h - Function 04h
分類	BRANCH4670 BIOS
名前	END RECEIVE
対象	PC-9864初代・L・U + ノーマル
	PC-9864初代・L・U + ハイレゾ
入力	AL=04h
	DH=送信先ソケット番号(80h,90h,A0h,B0h)
	DI=リザルトレコードの先頭アドレス(DI≦0FFFh)
出力	AL=リターンコード
	-------+-----------------------------------------------------------
	値      内容
	-------+-----------------------------------------------------------
	00h     指定されたソケットが開放された
	84h     指定できないソケット番号が指定された
	87h     コマンドが実行できなかった(ハードウェアエラー)
	88h     タイムアウトになった
	-------+-----------------------------------------------------------
解説  o 指定されたソケットを開放する。
      o 開放されたソケットは、再度SETUP RECEIVEファンクションを実行するまで
	データ受信ができない。
関連	


INT D3h - Function 05h
分類	BRANCH4670 BIOS
名前	不明
	Undocumented
対象	PC-9864L・U + ノーマル
	PC-9864初代・L・U + ハイレゾ
入力	AL=05h
	DH=送信先ソケット番号(80h,90h,A0h,B0h)
	■PC-9864L・U + ノーマルのとき
	DI=リザルトレコードの先頭アドレス
	■PC-9864初代・L・U + ハイレゾのとき
	SI=リザルトレコードの先頭アドレス+1
出力	INT D3h - Function 04hと同じ
解説  o ノーマルモードでは、INT D3h - Function 04hと全く同じ処理を行う。
      o ハイレゾモードでは、使用するレジスタが一部異なる以外、
	INT D3h - Function 04hと同じ処理を行う。
関連	


INT D3h - Function 06h
分類	BRANCH4670 BIOS
名前	INITIALIZE
対象	PC-9864初代・L・U + ノーマル
	PC-9864初代・L・U + ハイレゾ
入力	AL=06h
	DI=リザルトレコードの先頭アドレス(DI≦0FFFh)
出力	AL=リターンコード
	-------+-----------------------------------------------------------
	値      内容
	-------+-----------------------------------------------------------
	00〜3Fh 自局のステーション番号
	87h     コマンドが実行できなかった(ハードウェアエラー)
	88h     タイムアウトになった
	89h     BRANCH4670 I/Fボードがない
	-------+-----------------------------------------------------------
解説  o BNAの初期化とBRANCH4670 BIOSワークエリアの初期設定をする。
      o 以下の処理を行う。
	- I/O 008Fhからステータスを引き取り、割り込み番号を調べて割り込み
	  ベクタを設定する。
        - ローカルRAMを初期化する。
        - BNAを初期化する。
	- BRANCH4670 BIOSワークエリアを初期化する。
	- 割り込みコントローラのマスクを解除する。
	- 自局のステーション番号を返す。
関連	


INT D3h - Function 07h
分類	BRANCH4670 BIOS
名前	不明
	Undocumented
対象	PC-9864L・U + ノーマル
	PC-9864初代・L・U + ハイレゾ
入力	AL=07h
	■PC-9864L・U + ノーマルのとき
	DI=リザルトレコードの先頭アドレス
	■PC-9864初代・L・U + ハイレゾのとき
	SI=リザルトレコードの先頭アドレス+1
出力	INT D3h - Function 06hと同じ
解説  o ノーマルモードでは、0000:043Bh bit 3=0のとき、INT D3h - Function 06hと
	全く同じ処理を行う。0000:043Bh bit 3=1のときは、INT D3h - Function 06h
	の一部の処理をスキップして実行する。詳細不明。
      o ハイレゾモードでは、使用するレジスタが一部異なる以外、
	INT D3h - Function 06hと同じ処理を行う。
関連	


INT D3h - Function 08h
分類	BRANCH4670 BIOS
名前	WHO AM I
対象	PC-9864初代・L・U + ノーマル
	PC-9864初代・L・U + ハイレゾ
入力	AL=08h
	DI=リザルトレコードの先頭アドレス(DI≦0FFFh)
出力	AL=リターンコード
	-------+-----------------------------------------------------------
	値      内容
	-------+-----------------------------------------------------------
	00〜3Fh 自局のステーション番号
	87h     コマンドが実行できなかった(ハードウェアエラー)
	88h     タイムアウトになった
	-------+-----------------------------------------------------------
解説  o 自局のステーション番号を通知する。ステーション番号は、PC-9864
	(ネットワークインターフェースボード)のDIP SWで設定する。
関連	


INT D3h - Function 09h
分類	BRANCH4670 BIOS
名前	不明
	Undocumented
対象	PC-9864L・U + ノーマル
	PC-9864初代・L・U + ハイレゾ
入力	AL=09h
	AH=不明
	DH=不明
	■PC-9864L・U + ノーマルのとき
	DI=リザルトレコードの先頭アドレス
	■PC-9864初代・L・U + ハイレゾのとき
	SI=リザルトレコードの先頭アドレス+1
出力	INT D3h - Function 08hと同じ
解説  o ノーマルモードでは、AH=00h,DH=07hでこのファンクションを実行すると、
	INT D3h - Function 08hと全く同じ処理を行う。それ以外の場合、詳細不明。
      o ハイレゾモードでは、使用するレジスタが一部異なる以外、
	INT D3h - Function 08hと同じ処理を行う。
関連	


INT D3h - Function 0Ah
分類	BRANCH4670 BIOS
名前	ECHO
対象	PC-9864初代・L・U + ノーマル
	PC-9864初代・L・U + ハイレゾ
入力	AL=0Ah
	DL=相手側ステーション番号
	DI=リザルトレコードの先頭アドレス(DI≦0FFFh)
出力	AL=リターンコード
	-------+-----------------------------------------------------------
	値      内容
	-------+-----------------------------------------------------------
	80h     相手側ステーションから応答が返ってこなかった
	86h     指定できないステーション番号が指定された
	87h     コマンドが実行できなかった(ハードウェアエラー)
	88h     タイムアウトになった
	C0h     相手側ステーションが正しく応答を返した
	-------+-----------------------------------------------------------
解説  o 相手側のBNAが正しく接続されていて、動作可能かどうかを調べる。
関連	


INT D3h - Function 0Bh
分類	BRANCH4670 BIOS
名前	不明
	Undocumented
対象	PC-9864L・U + ノーマル
	PC-9864初代・L・U + ハイレゾ
入力	AL=0Bh
	AH=不明
	DL=相手側ステーション番号
	■PC-9864L・U + ノーマルのとき
	DI=リザルトレコードの先頭アドレス
	■PC-9864初代・L・U + ハイレゾのとき
	SI=リザルトレコードの先頭アドレス+1
出力	AL=リターンコード
解説  o AH=00h,FFh以外のとき、INT D3h - Function 0Ahと全く同じ処理を行う。
	AH=00hまたはFFhのときは詳細不明。
      o ハイレゾモードでは、使用するレジスタが一部異なる以外、
	INT D3h - Function 0Ahと同じ処理を行う。
関連	


INT D3h - Function 0Ch
分類	BRANCH4670 BIOS
名前	PEEK/POKE
対象	PC-9864初代・L・U + ノーマル
	PC-9864初代・L・U + ハイレゾ
入力	AL=0Ch
	AH=PEEK/POKE指定
	    00h: PEEK指定
	    FFh: POKE指定
	BX=ピコプロセッサアドレス
	DL=POKEデータ(POKE指定時)
	DI=リザルトレコードの先頭アドレス(DI≦0FFFh)
出力	AL=リターンコード
	-------+-----------------------------------------------------------
	値      内容
	-------+-----------------------------------------------------------
	00h     正常終了(POKE指定時)
	87h     コマンドが実行できなかった(ハードウェアエラー)
	88h     タイムアウトになった
	nnh     ピコプロセッサの指定アドレスの内容(PEEK指定時)
	-------+-----------------------------------------------------------
解説  o 自局のBNAの内部メモリ内容を取得(PEEK)、変更(POKE)する。
表	BNAの内部メモリの内容
	-------+-----------------------------------------------------------
	オフセット   内容
	-------+-----------------------------------------------------------
	00E1h   メッセージ送信失敗時の最大リトライ回数(初期値=0Ah)
	00E2h   各パケットの最後に送られるトレーリングフラグの数¥
		(初期値=0Ah。ユーザ変更禁止)
	00E3h   遅延カウンタ用の係数(ユーザ変更禁止)
	00E4h   ACKパケットのリーディングフラグの数
	00E5h   喪失パケットカウンタ(ユーザ変更禁止)
	00E6h   衝突回避用中断カウンタ(ユーザ変更禁止)
	00E7h   前回エラー発生時のADLC受信ステータス(ユーザ変更禁止)
	00E8h   割り込みエラーカウンタ(ユーザ変更禁止)
	00E9h   転送アンダーランカウンタ(ユーザ変更禁止)
	00EAh   6854レジスタ値(ユーザ変更禁止)
	-------+-----------------------------------------------------------
関連	


INT D3h - Function 0Dh
分類	BRANCH4670 BIOS
名前	不明
	Undocumented
対象	PC-9864L・U + ノーマル
	PC-9864初代・L・U + ハイレゾ
入力	AL=0Dh
	■PC-9864L・U + ノーマル + 0000:043Bh bit 6=0のとき
	AH=PEEK/POKE指定
	    00h: PEEK指定
	    FFh: POKE指定
	BX=ピコプロセッサアドレス
	DL=POKEデータ(POKE指定時)
	DI=リザルトレコードの先頭アドレス
	■PC-9864L・U + ノーマル + 0000:043Bh bit 6=1のとき
	不明
	■PC-9864初代・L・U + ハイレゾのとき
	SI=リザルトレコードの先頭アドレス+1
出力	AL=リターンコード
解説  o ノーマルモードでは、0000:043Bh bit 6=0のとき、INT D3h - Function 0Chと
	全く同じ処理を行う。0000:043Bh bit 6=1のときは、独自の処理を行う。詳細
	不明。
      o ハイレゾモードでは、使用するレジスタが一部異なる以外、
	INT D3h - Function 0Chと同じ処理を行う。


INT D3h - Function 0Eh
分類	BRANCH4670 BIOS
名前	PUT DATA
対象	PC-9864初代・L・U + ノーマル
	PC-9864初代・L・U + ハイレゾ
入力	AL=0Eh
	BX=転送先のローカルRAMの先頭アドレス
	CX=転送データ長(BX+CX≦0FFFh)
	DS:SI=転送先の本体RAMアドレス
出力	AL=リターンコード
	-------+-----------------------------------------------------------
	値      内容
	-------+-----------------------------------------------------------
	00h     正常終了
	-------+-----------------------------------------------------------
解説  o 本体RAMのデータをローカルRAMに転送する。
関連	


INT D3h - Function 0Fh
分類	BRANCH4670 BIOS
名前	不明
	Undocumented
対象	PC-9864L・U + ノーマル
	PC-9864初代・L・U + ハイレゾ
入力	AL=0Fh
	BX=転送先のローカルRAMの先頭アドレス
	CX=転送データ長(BX+CX≦0FFFh)
	DS:SI=転送先の本体RAMアドレス
出力	INT D3h - Function 0Ehと同じ
解説  o INT D3h - Function 0Ehと全く同じ処理を行う。
関連	


INT D3h - Function 10h
分類	BRANCH4670 BIOS
名前	GET DATA
対象	PC-9864初代・L・U + ノーマル
	PC-9864初代・L・U + ハイレゾ
入力	AL=10h
	BX=転送先のローカルRAMの先頭アドレス
	CX=転送データ長(BX+CX≦0FFFh)
	DS:SI=転送先の本体RAMアドレス
出力	AL=リターンコード
	-------+-----------------------------------------------------------
	値      内容
	-------+-----------------------------------------------------------
	00h     正常終了
	-------+-----------------------------------------------------------
解説  o ローカルRAMのデータを本体RAMに転送する。
関連	


INT D3h - Function 11h
分類	BRANCH4670 BIOS
名前	不明
	Undocumented
対象	PC-9864L・U + ノーマル
	PC-9864初代・L・U + ハイレゾ
入力	AL=11h
	BX=転送先のローカルRAMの先頭アドレス
	CX=転送データ長(BX+CX≦0FFFh)
	DS:SI=転送先の本体RAMアドレス
出力	INT D3h - Function 10hと同じ
解説  o INT D3h - Function 10hと全く同じ処理を行う。
関連